<?php

//后台管理员控制器
//命名空间
namespace Admin\Controller;
use Think\Controller;
//use Component\AdminController;

//生成验证码的控制器必须继承父类controller控制器，因为生成验证码前不能执行其他任何操作
 
class ManagerController extends Controller
{
    //登录验证
    public function login()
    {
        if (IS_POST) {
//            检查验证码
//            $rst = $this->checkVerify(I('post.verify'));
//            if($rst === false){
//                $this->error("验证码错误");
//            }
//            检查用户名和密码

            $user = M('sw_manager');

            $mg_name = I('post.admin_name');
            $mg_pwd = I('post.admin_pwd');

            $rst = $user->where(array('mg_name' =>$mg_name ,'mg_pwd'=>$mg_pwd ))->select();
        
 
           if($rst){
                session('admin_name',$rst[0]['mg_name']);
                session('mg_id',$rst[0]['mg_id']);
             cookie('mg_com',$rst[0]['mg_com'],3600);


//            if ($user->where(array('mg_name' => $mg_name, 'mg_pwd' => $mg_pwd))->select()) {
////                session('admin_name', $mg_name);
//
//                session('admin_name',$mg_name);
//                session('mg_id',$mg_id);
//                //$this->success('登录成功,请稍后',U('Index/index'));
                $this->redirect('Index/index', array(), 0, '登录成功');
            }
        else {
                $this->error("登录失败，用户名或者密码错误");
            }
            return;
        }
        $this->display();
    }




    //生成验证码
    public function getVerify()
    {
//        import ( "ORG.Util.Image" );
//        Image::buildImageVerify ( 4 );
        ob_clean();
        $verify = new \Think\Verify();
        return $verify->entry();
    }

    //检查验证码
    private function checkVerify($code, $id = '')
    {
        $verify = new \Think\Verify();
        return $verify->check($code, $id);
    }

    //退出系统
    public function logout()
    {
        session('[destroy]');
        //$this->success('退
        //出成功',U('Login/index'),0);
        $this->redirect('Manager/login', array(), 0, '退出成功');
    }


//展示管理员列表
    function showlist(){
        $info = D('sw_manager')->select();

        $rinfo = $this ->getRoleInfo();

        $this -> assign('rinfo',$rinfo);

        $this -> assign('info', $info);
        $this -> display();
    }
//修改管理员信息列表
    function upd($mg_id){
        if(!empty($_POST)){
            $manager = D('sw_manager');
            $manager->create();
            $z = $manager->save();
            if($z){
                $this -> success('修改管理员成功！',U('showlist'));
            }else {
                $this -> error('修改管理员失败！',U('showlist'));
            }
        } else {
            //获得被修改管理员的信息
            $info = D('sw_manager')->find($mg_id);
            $rinfo = $this -> getRoleInfo();
            $this -> assign('rinfo',$rinfo);

            $this -> assign('info', $info);
            $this -> assign('mg_id', $mg_id);
            $this -> assign('role_id', $info['mg_role_id']);
            $this -> display();
        }
    }

    //从角色表中获得角色信息（以矩阵键值对形式显示）
    function getRoleInfo(){
        //查询全部角色的信息
        $rrinfo = D("sw_role")->select(); //二维数组信息
        //array(1=>'经理',2=>'主管',3=>'总监')
        $rinfo = array();
        foreach($rrinfo as $k => $v){
            $rinfo[$v['role_id']] = $v['role_name'];//array(1=>'经理',2=>'主管')
        }
        return $rinfo;
    }
    //获取管理员列表中的s所有公司名称
    function getCom(){
        //查询所有信息
          $mag= D('sw_manager')->select();
        $mginfo = array();
        foreach ($mag as $key => $value) {
            $mginfo[] = $value['mg_com'];
        }
        return $mginfo;

}

    //增加用户
    public function add()
    {

        $rinfo = $this -> getRoleInfo();
        $this -> assign('rinfo',$rinfo);
        if (IS_POST) {
            //echo "<script type='text/javascript'>{alert($_POST[mg_role_id]);}</script>";

//            //获取用户角色id
//            $mg_role_id=$_POST[mg_role_id];
//            //从角色表中获取对应id的权限以及控制器方法
//            $manager = M('sw_role');
//            $sql = "select * from sw_role where role_id=$mg_role_id";
//            $info = $manager->query($sql);
//            print_r($info);
            $mgauth_auth_ids = $info[0]['role_auth_ids'];
            $mgauth_auth_ac = $info[0]['role_auth_ac'];
            //将获取到的权限id及控制器方法保存在用户权限表中对应用户id下面
            $mgauth = M('mgauth');








            $model = M('sw_manager');
            $mg_name = I('post.mg_name');
            $mg_pwd = I('post.mg_pwd');
            $mg_com = I('post.mg_com');

//            if (empty($mg_name)||empty($mg_pwd)) {
//                // echo '企业单位详细名称不能为空!' . "";
//                echo "<script type='text/javascript'>alert('用户名和密码不能为空!数据添加失败！');history.back(-1);</script>";
//            } else {
            $mginfo=$this -> getCom();
if(in_array($mg_com,$mginfo)){
    echo "<script type='text/javascript'>alert('公司名称不能重复！用户添加失败！');history.back(-1);</script>";
}else{





            $data = $model->create();


            // print_r($data);
           //获取用户角色id
               $mg_role_id=$data[mg_role_id];
                //从角色表中获取对应id的权限以及控制器方法
                $manager = M('sw_role');
                $sql = "select * from sw_role where role_id=$mg_role_id";
                $info = $manager->query($sql);
                //print_r($info);
                $mgauth_auth_ids = $info[0]['role_auth_ids'];
              // print_r($mgauth_auth_ids);

                $mgauth_auth_ac = $info[0]['role_auth_ac'];
               // print_r($mgauth_auth_ac);

                $res = $model->add();
             // print_r($res);
           //res是当前的用户id,保存这个用户id,以及上面获取到的权限ids和权限方法到用户权限表中
                 $mgauth=M('mgauth');
                $num["mgauth_mg_id"]= $res ;
                $num["mgauth_auth_ids"]= $mgauth_auth_ids ;
                $num["mgauth_auth_ac"]= $mgauth_auth_ac;
                $res1=$mgauth->add($num);
//print_r($res1);


            if ($res) {
                $info = $model->select();
                $this->assign("info",$info);
                $this->display("add");
                echo "<script type='text/javascript'>{alert('用户添加成功');}</script>";
                // echo "<script type='text/javascript'>alert('数据添加成功');history.back(-1);</script>";
            } else {
                echo "<script type='text/javascript'>alert('用户添加失败');history.back(-1);</script>";
            }
            return;
        }
       }//判断公司名称是否重复的
        $this->display();
    }
    //删除用户
    function del($mg_id)
    {
        //查询被修改商品的信息并传递给模板展示
        $model = D("sw_manager");

        $res = $model->delete($mg_id);
      
        if ($res) {
            //echo "<script type='text/javascript'>window.onload=function(){alert('数据删除成功');}</script>";
            $info = $model->select();
            $this->assign("info", $info);
            $this->display("showlist");
            echo "<script type='text/javascript'>{alert('数据删除成功');}</script>";
            //$this->showlist();
            //$this->success('删除成功');

        } else {
            echo "<script type='text/javascript'>alert('数据删除失败');history.back(-1);</script>";
        }
    }


}
